home *** CD-ROM | disk | FTP | other *** search
- #
- # Small c Interpreter command shell
- #
- char _nr, _nc, _ro, _co, *_cp, *_el, _mhz;
-
- putchar(c){return sys(c,2,1)}
- getchar(){return sys(1,2)}
- puts(b){return sys(b,2,3)}
- putd(n){return printf("%d\n",n)}
- putx(n){return printf("%x\n",n)}
- puto(n){return printf("%o\n",n)}
- gets(b){return sys(b,80,1,4)}
- fputc(c,u){return sys(c,u,1)}
- fgetc(u){return sys(u,2)}
- fputs(b,u){return sys(b,u,3)}
- fgets(b,n,u){return sys(b,n,u,4)}
- sprintf(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9){sys(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,5)}
- printf(a0,a1,a2,a3,a4,a5,a6,a7,a8)
- {char b[128];sys(b,a0,a1,a2,a3,a4,a5,a6,a7,a8,5);puts(b)}
- sscanf(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9){sys(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,6)}
- scanf(a0,a1,a2,a3,a4,a5,a6,a7,a8)
- {char b[128];gets(b);sys(b,a0,a1,a2,a3,a4,a5,a6,a7,a8,6)}
- atoi(b){int v;sys(b,"%d",&v,6);return v}
- fopen(f,m){return sys(f,m,7)}
- fread(s,l,u){return sys(s,l,u,8)}
- fwrite(s,l,u){return sys(s,l,u,9)}
- fclose(u){return sys(u,10)}
- fseek(u,o,w){return sys(u,o,w,11)}
- ftell(u){return sys(u,12)}
- bdos(a,b){return sys(a,b,13)}
- system(s){return sys(s,14)}
- exit(){sys(15)}
- strcmp(s,t){return sys(s,t,20)}
- strncmp(s,t,n){return sys(s,t,n,20)}
- strcpy(s,t){return sys(s,t,21)}
- strncpy(s,t,n){return sys(s,t,n,21)}
- strlen(s){return sys(s,22)}
- malloc(n){return sys(n,23)}
- free(p){sys(p,24)}
- trace(n){sys(n,28)}
- dirscan(p,f){return sys(p,f,29)}
-
- entry
-
- char ln[80];
- char pr[20000];
-
- main()
- {
- int f, t;
-
- puts(sys(0));
- puts("\nShell V1.3 15Mar86 Copyright (C) 1986 Bob Brodt\n");
- _nr=25; _nc=80;
- _ro=_co=1;
- _cp="\033[%d;%dH";
- _el="\033[K";
- _mhz=5;
- *pr='Z';
-
- for(;;) {
- puts("> ");
- ln[5]=0;
- if(gets(ln)) {
- if (!strncmp(ln,"edit",4))
- sys(atoi(ln+4),pr,19);
- else if (!strncmp(ln,"list",4)) {
- f=1;
- t=32765;
- if(ln[4])
- sscanf(ln+4,"%d %d",&f,&t);
- sys(pr,f,t,27);
- }
- else if (!strncmp(ln,"save",4))
- sys(ln+5,pr,26);
- else if (!strncmp(ln,"load",4))
- sys(ln+5,pr,25);
- else if (!strcmp(ln,"exit"))
- exit();
- else
- printf("\n%d\n",sys(ln,pr,16));
- }
- }
- }
-